/**
 * 
 */
package com.yidu.drug.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.yidu.drug.common.Page;
import com.yidu.drug.common.Tools;
import com.yidu.drug.dao.FinancialRecordModelMapper;
import com.yidu.drug.model.FinancialRecordModel;
import com.yidu.drug.service.FinancialRecordService;

/**
 * 财务记录接口实现类
 * @author tanglei
 * @date 2018年8月15日 上午10:11:10
 * @version 1.0
 */
@Service
public class FinancialRecordServiceImpl implements FinancialRecordService{
	
	//注入财务记录Dao
	@Resource
	private FinancialRecordModelMapper financialRecordDao; 
	
	/**
	 * 根据财务记录ID删除
	 * @param frId 传入一个财务记录ID
	 * @return 返回一个影响的行数
	 */
	@Override
	public int deleteByPrimaryKey(String frId) {
		// TODO Auto-generated method stub
		return 0;
	}

	/**
	 * 增加财务记录数据(一次性增加所有字段)
	 * @param record 传入一个财务记录对象
	 * @return 返回一个影响的行数
	 */
	@Override
	public int insert(FinancialRecordModel record) {
		// TODO Auto-generated method stub
		return 0;
	}

	/**
	 * 增加财务记录数据(可增加一个或多个字段)
	 * @param record 传入一个财务记录对象
	 * @return 返回一个影响的行数
	 */
	@Override
	public int insertSelective(FinancialRecordModel record) {
		//调用财务记录Dao里面的增加的方法
		return financialRecordDao.insertSelective(record);
	}

	/**
	 * 根据财务记录ID查询财务记录对象
	 * @param frId 传入一个财务记录ID
	 * @return 返回一个财务记录对象
	 */
	@Override
	public FinancialRecordModel selectByPrimaryKey(String frId) {
		// TODO Auto-generated method stub
		return null;
	}

	/**
	 * 根据财务记录ID修改财务记录对象(可修改一个或多个字段)
	 * @param record 传入一个财务记录对象
	 * @return 返回一个影响的行数
	 */
	@Override
	public int updateByPrimaryKeySelective(FinancialRecordModel record) {
		// TODO Auto-generated method stub
		return 0;
	}

	/**
	 * 根据财务记录ID修改财务记录对象
	 * @param record 传入一个财务记录对象
	 * @return 返回一个影响的行数
	 */
	@Override
	public int updateByPrimaryKey(FinancialRecordModel record) {
		// TODO Auto-generated method stub
		return 0;
	}

	/**
	 * 根据财务ID查询所有财务记录数据(包括分页和根据条件查询)
	 * @param record 传入一个财务记录对象
	 * @return 返回一集合
	 */
	@Override
	public Map<String,Object> findByFsId(FinancialRecordModel record) {
		//创建一个分页对象
		Page page = new Page();
		//给分页对象的页数属性赋值，数值为财务记录对象里面的页数数据
		page.setPage(Integer.valueOf(record.getPage()));
		//给分页对象的每页显示的行数属性赋值，数值为财务记录对象里面的每页显示行数数据
		page.setRows(Integer.valueOf(record.getLimit()));
		//给财务记录对象里面的分页对象属性赋值
		record.setPages(page);
		//调用根据财务ID查询所有财务记录数据的查询方法，并用集合接收
		List<FinancialRecordModel> list = financialRecordDao.findByFsId(record);
		//查询总行数
		Long count = financialRecordDao.findRows(record);
		//创建一个map集合
		Map<String,Object> map = new HashMap<String,Object>();
		//给map集合赋值
		map.put("code", 0);
		map.put("msg", "");
		map.put("count",count);
		map.put("data", list);
		//返回
		return map;
	}

	/**
	 * 查询总行数
	 * @param record 传入一个财务记录对象
	 * @return 返回一个总行数
	 */
	@Override
	public Long findRows(FinancialRecordModel record) {
		//调用财务记录Dao里面的查询总行数的方法斌返回
		return financialRecordDao.findRows(record);
	}

	/**
	 * 计算总金额
	 * @param record 传入一个财务记录对象
	 * @return 返回一个总金额
	 */
	@Override
	public Double countTotalMoney(FinancialRecordModel record) {
		return financialRecordDao.countTotalMoney(record);
	}

}
